Learning Objectives

After completing this lesson, you’ll be able to:

Resources

Annotating Workspaces

Annotation is a crucial method for a clear and understandable design.

Annotation helps other users understand what is supposed to be happening in the translation and helps the creator when returning to a workspace after a long interval (take it from me that this is especially important!)

You can apply three different types of annotation to a workspace.

Custom Annotation

Custom annotation is a comment created by the user. It can be connected to a workspace object (transformer or feature type), connected to a workspace connection, or can float freely within the workspace.

Annotation examples

To create an attached custom annotation, right-click a canvas object and select Add Annotation, or use the shortcut Ctrl+K when the object is selected.

To create a floating custom annotation, right-click the canvas, select Insert Annotation, or press Ctrl+K when nothing is selected.

When you place an annotation, you can change the font style, font size, and background color; you can also add hyperlinks, bullet points, and tables.

Changing font style

Note

You might ask: "Why would I use annotation when I can just rename my transformers to make their function more explicit?" This is a good question! Some FME users like to rename transformers to describe what they are doing. However, we've seen some things that could be improved with this approach. First, it's hard to fit enough description in a short name. Second, other users (or yourself in the future) will have yet to learn what the original transformer was and will likely have to open it to see how it is configured. Ultimately, this method saves a little time, but you and your organization can decide if you prefer it.

Summary Annotation

Summary annotation is an FME-generated comment providing information about any workspace object. This item can be a source or destination feature type or a transformer.

The summary annotation is permanently blue to distinguish it from other annotations. It's always connected to the item it relates to and cannot be detached.

Summary annotation example

The nice thing about Summary Annotation is that it automatically updates in response to changes. That makes it very useful for checking transformer parameters (or reader/writer schemas) at a glance. It's beneficial when the parameters are set through a wizard and are more awkward to check (for example, the SchemaMapper or FMEServerJobSubmitter transformers).

Parameter Annotation

As of FME 2024.1, you can enhance your ability to document and understand your data workflows by allowing context-specific annotations directly within Parameter Editor dialogs. This ensures that relevant information is continuously visible without cluttering the workspace. 

Anywhere you set a parameter via text or in a table, look for the Add Annotation option to add an explanation for why you configured the parameter this way:

Parameter annotation

Parameter annotation appears in summary annotation, so you can use it as a way to add custom comments while still taking advantage of summary annotation's automatic update features.

Which Annotation Type Should I Use?

You should use summary annotation to show your actions and custom annotation to clarify why you are taking those actions. A good example is when you are not using default values for a transformer or feature type.

Use summary or custom annotation to call out details you wish to be available at a high level, i.e., directly on the canvas. Use parameter annotation for more complex or specific explanations of specific parameter values.

You can convert a summary annotation to a custom annotation by using this context menu option:

Converting summary to attached annotation

This method allows you to extract the information from a summary annotation but edit it as a custom annotation. Note, however, that a converted summary annotation no longer updates automatically!

Exercise

Now that Jennifer has reminded herself how the workspace works and started to clean it up, she wants to document it with annotation. That way she or her colleagues can get up to speed faster next time they open the workspace.

1) Open Workspace

She opens the starting workspace (C:\FMEData\Workspaces\UseDataIntegrationBestPractices\annotate-your-workspaces.fmw) in FME Workbench (2025.0.1 or later).

2) Add User Annotation

Jennifer wants to add annotation to highlight what is happening. This step will require inspecting the transformers to determine what they are doing and inspecting the readers to determine which format they are in.

Add annotation to relevant transformers, for example:

Adding annotation

Adding explanatory annotation where necessary will help determine what is happening in the workspace.

3) Add Parameter Annotation

The final calculation of the walkability score will get a bit complex, so Jennifer would like to pay particular attention to annotation in that section of the workspace. She'd like to make the noise zone score calculation step more transparent.

She finds the AttributeValueMapper_2 at the far right of the workspace, where the noise zone score is calculated:

Locating AttributeValueMapper_2

She double-clicks it to open its parameters. 

Then she clicks the drop-down arrow next to NoiseZoneScore and chooses Add Annotation:

Add parameter annotation

She enters

Impact of noise zones on walkability score, ranging from 50 (high noise) to 200 (low noise).

Adding parameter annotation text

Then she clicks OK.

She confirms the parameter annotation exists by mousing over the new blue icon:

Viewing parameter annotation

She clicks OK to close the AttributeValueMapper_2's dialog.

4) Add Summary Annotation

Finally, Jennifer would like to use some summary annotation to show the categories used in the noise zone score.

She right-clicks AttributeValueMapper_2 and chooses Show Summary Annotation:

Show summary annotation

The summary annotation appears, including the mapping table and the new parameter annotation she just added:

Summary annotation

Now Jennifer's workspace is more understandable at a glance.

However, it's missing a visual hierarchy - it's hard to tell which sets of transformers are conducting related tasks. So, now she needs to add some bookmarks.